<?php

namespace application\controller\cpservice;

use application\controller\cpservice\ServiceController;
use application\service\UserService;
use core\system\HttpRequest;
use application\entity\db\User;

class UserController extends ServiceController {

    private $userService;

    public function __construct() {
        parent::__construct();
        $this->userService = new UserService();
    }

    /**
     * Service xóa người dùng theo id
     * @param $id mã người dùng
     * @return \application\entity\Response
     * @mapping(value=cpservice/user/remove.json)
     */
    public function remove() {
        $id = HttpRequest::GET("id");
        $resp = $this->userService->remove($id);
        $this->view->response($resp);
    }

    /**
     * Lấy thông tin người dùng teo id
     * @param $id mã người dùng
     * @return \application\entity\Response
     * @mapping(value=cpservice/user/get.json)
     */
    public function get() {
        $id = HttpRequest::GET("id");
        try {
            $user = $this->userService->get($id);
            $this->view->response(true, "Thông tin tài khoản", $user);
        } catch (Exception $exc) {
            $this->view->response(false, $exc->getMessage());
        }
    }

    /**
     * Cập nhật thông tin tài khoản
     * @param User
     * @return \application\entity\Response
     * @mapping(value=cpservice/user/edit.json)
     */
    public function edit() {
        $user = HttpRequest::content('POST', 'json', User::class);
        $resp = $this->userService->edit($user);
        $this->view->response($resp);
    }

}
